package qq

import (
	"fmt"

	"github.com/Mrs4s/go-cqhttp/cache"
	"github.com/Mrs4s/go-cqhttp/model"
)

// 限制次数
const BASE_LIMIT = 10

// 手续费
// const FIVE_FEE = -5

/* Five 抢劫， 都需要大于50金币,  */
func Five(userID, to_userID int64, random_key int64) (flag, coins int64) {
	// 限制次数
	var goumai int64
	limit, err := cache.GetRedis().GetFiveLimitLog(userID)
	if err == nil && limit >= BASE_LIMIT {
		// 判断购买了没
		goumai, _ = cache.GetRedis().GetBuyFiveLimit(userID)
		if goumai <= 0 {
			flag = -1 // 抢劫上限
			return
		}
	}
	to_coins := model.GetUserCoinsByUserID(to_userID)
	if to_coins < 50 {
		flag = 0 // 对方余额不足
		return
	}
	my_coins := model.GetUserCoinsByUserID(userID)
	if my_coins < 50 {
		flag = 1 // 自己余额不足
		return
	}

	if limit >= BASE_LIMIT {
		// 判断购买了没
		goumai, _ = cache.GetRedis().GetBuyFiveLimit(userID)
		if goumai <= 0 {
			flag = -1 // 抢劫上限
			return
		}
		// 购买次数减一
		cache.GetRedis().BuyFiveLimit(userID, -1)
	}
	flag = 2 // 抢劫成功， coins 赢了，否则输了
	coins = randomBykey(-30, 50, random_key)
	// 主动抢劫扣除手续费5金币
	// model.SetUserCoinsByUserID(userID, FIVE_FEE, "抢劫手续费5金币")
	cache.GetRedis().AddFiveLimitLog(userID)
	// 抢劫成功
	model.SetUserCoinsByUserID(userID, coins, "抢劫收益")
	model.SetUserCoinsByUserID(to_userID, -coins, fmt.Sprintf("被[%d]抢劫", userID))
	return
}

func FiveCheck(userID, to_userID int64) (flag int64) {
	to_coins := model.GetUserCoinsByUserID(to_userID)
	if to_coins < 50 {
		flag = 0 // 对方余额不足
		return
	}
	my_coins := model.GetUserCoinsByUserID(userID)
	if my_coins < 50 {
		flag = 1 // 自己余额不足
		return
	}
	return 2
}
